home *** CD-ROM | disk | FTP | other *** search
/ Carousel / CAROUSEL.cdr / mactosh / utilprn / hpdeskje.sit / HPDJet ƒ / save_last_used.c < prev    next >
Text File  |  1989-04-02  |  2KB  |  61 lines

  1. /* 02.04.1989  amn  (latest edit) */
  2.  
  3. /* save_last_used.c  -  printer driver for Macintosh and HP DeskJet, code fragment */
  4. /*                      to save last used print record. */
  5.  
  6. /* Authors:  Ari Mujunen (amn@hutcs.hut.fi) and Olli Arnberg (oar@hutcs.hut.fi). */
  7. /* Copyright Ari Mujunen, Olli Arnberg 1989. */
  8. /* You may redistribute the driver (=printer resource file, source files, */
  9. /* documentation file(s), and the file 'Copyright and Source Offer') */
  10. /* only _non-commercially_ and _in its entirety_. */
  11. /* See the file 'Copyright and Source Offer' and/or documentation for details. */
  12. /* Acknowledgements:  Special thanks to Mr. Earle R. Horton for his 'Daisy' */
  13. /* daisywheel printer driver and its source code published in 'MacTutor', Nov-Dec 1987. */
  14. /* This driver served as a basis and inspiration for our work.  It also */
  15. /* proofed that a Macintosh printer driver can be done despite the lack of */
  16. /* documentation from Apple. */
  17.  
  18. /* Change history: */
  19. /* Version  When        Who      Why */
  20. /* 2.1      02.04.1989  amn,oar  Released version. */
  21.  
  22.  
  23.     {  /* Save last used print record into printer driver resource file. */
  24.         THPrint savePrint;
  25.         int saveResFileRefNum;
  26.         
  27.         saveResFileRefNum = CurResFile();
  28.         UseResFile(
  29.             HomeResFile(
  30.                 GetResource('PDEF', NUMBER_OF_THIS_PDEF)
  31.             )
  32.         );
  33.         savePrint = (THPrint)GetResource('PREC', 1);
  34.         if (savePrint != nil) {  /* PREC exists, change it */
  35.             LoadResource(savePrint);
  36.             HNoPurge(savePrint);
  37.             **savePrint = **hPrint;
  38.             ChangedResource(savePrint);
  39.             /* if (ResError()...; but there is not much we can do */
  40.             WriteResource(savePrint);
  41.             HPurge(savePrint);
  42.         }
  43.         else {  /* PREC doesn't exist, create it */
  44.             savePrint = (THPrint)NewHandle((long)(sizeof(TPrint)));
  45.                 /* This should be allocated from system heap if MF is running. ??? */
  46.             if (savePrint != nil) {
  47.                 **savePrint = **hPrint;
  48.                 AddResource(savePrint, 'PREC', 1, "\pLast used");
  49.                 if (ResError() == noErr) {
  50.                     WriteResource(savePrint);
  51.                     HPurge(savePrint);
  52.                 }
  53.                 else {
  54.                     DisposHandle(savePrint);
  55.                 }  /* if resource added */
  56.             }  /* if memory allocated */
  57.         }  /* else create new PREC */
  58.         
  59.         UseResFile(saveResFileRefNum);
  60.     }  /* end save 'PREC' 1 */
  61.